package com.example.controller;

import cn.hutool.core.util.ObjectUtil;
import com.example.common.Result;
import com.example.common.RoleEnum;
import com.example.entity.Account;//引入Admit类来接收前台表单返回的属性
import com.example.service.AdminService;
import com.example.service.StudentService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class WebController {

    @Resource
    private AdminService adminService;
    @Resource
    private StudentService studentService;

    /**
     * 默认请求接口
     */
    @GetMapping("/")
    public Result hello() {
        return Result.success();
    }

    /**
     * 登录接口
     */
//登录接口返回用户信息
    @PostMapping("/login")
//    post请求， /login为新的请求路径 ， @RequestBody去接受前端的参数,即一个form表单，表单里有两个值
//    新建一个entity包，在里面创建一个新的Admit类来接收值
    public Result login(@RequestBody Account account) {
        Account dbAccount;
        if(RoleEnum.ADMIN.name().equals(account.getRole())){
            dbAccount = adminService.login(account);
        }else if(RoleEnum.STUDENT.name().equals(account.getRole())){
            dbAccount = studentService.login(account);
        }else{
            return Result.error("角色错误");
        }
        return Result.success(dbAccount);
    }

    /**
     * 登录接口
     */
//登录接口返回用户信息
    @PostMapping("/register")
//    post请求， /login为新的请求路径 ， @RequestBody去接受前端的参数,即一个form表单，表单里有两个值
//    新建一个entity包，在里面创建一个新的Admit类来接收值
    public Result register(@RequestBody Account account) {
       if(ObjectUtil.isEmpty(account.getUsername())||ObjectUtil.isEmpty(account.getPassword())){
             return  Result.error("账号或密码必填");
       }
       studentService.register(account);
        return Result.success();
    }
}
